說完了一些基本概要,接下來我們介紹雜湊函數SM3。
為什麼先從SM3開始呢? 因為SM3是對應到雜湊函數SHA256,他是SHA256的基礎去改進的算法,安全性和SHA256一樣,主要是SM2、SM4、SM9也都可以使用SM3當作雜湊使用就不一定要用SHA256了。
SM3的算法和SHA1和MD5有類似的地方。
SM3一開始會有個初始向量IV,然後要將訊息填充到為512的倍數(此填充規則和MD5一樣),之後先將訊息分組,分組後會做訊息擴充(此擴充和SHA-1類似),做完擴充後是壓縮(這裡的壓縮會做64次,雖然是叫壓縮但做的流程都是布林運算、左旋和置換),並且擴充和壓縮會有多次(按照分組的次數),最後出來的結果就是雜湊值。
SM3是由王小云教授主持設計的,該教授對於密碼學的雜湊函數可以是貢獻很大!
因為她找出了MD5的碰撞,也找出有效攻擊SHA-1的方式,碰撞對於雜湊值不能過於發生。
雜湊函數也有幾個有趣的事,比如:鴿籠原理、生日問題。
如果還有時間再和大家分享。